package opgave2;

/**
 * @author Andre Baart en Jeroen Castelein
 * @elementen 
 * 		Characters van het type char
 * @structuur
 * 		Lineair
 * @domein
 * 		Alle reeksen van numerieke characters (0-9), waarvan de eerste geen nul mag zijn, tenzij de inhoud 0 is.
 * @constructor
 * 		NatuurlijkGetal();
 * 			<dl>
 * 				<dt><b>PRE-conditie</b><dd>-
 * 				<dt><b>POST-conditie</b><dd>De inhoud van het nieuwe NatuurlijkGetal-object is '0'.
 * 			</dl>
 **/

public interface NatuurlijkGetalInterface extends Data {
	
	/** Initialiseert het NatuurlijkGetal op de meegegeven char c.
     * @preconditie
     *	    c is een cijfer
     * @postconditie
     *	    Het NatuurlijkGetal bevat nu alleen de char c.
     **/
	void init(char c);
	
	/** Voegt de meegegeven char c toe aan het eind van het NatuurlijkGetal
     * @preconditie
     *	    c is een cijfer 0 - 9.
     * @postconditie
     *	    Het NatuurlijkGetal-POST bevat NatuurlijkGetal-PRE met daarachteraan de meegegeven char c, behalve bij 0, dan c.
     **/
	void voegNummerToe(char c);
	
	/** Retourneert het character op de plaats n in het NatuurlijkGetal.
     * @preconditie
     *	    n >= 0 en n < lengte()
     * @postconditie
     *	    Het character op plaats n in het NatuurlijkGetal is geretourneerd.
     **/
	char geefNummerOpPlaats(int n);
	
	/** Retourneert het aantal characters in het NatuurlijkGetal.
     * @preconditie
     *	    -
     * @postconditie
     *	    Het aantal characters in het NatuurlijkGetal is geretourneerd.
     **/
	int lengte();
	
	/** Retourneert het verschil tussen een meegegeven object, en het object zelf.
     * @preconditie
     *	    -
     * @postconditie
     *	    RETURN:
     *			-1, wanneer het meegegeven object groter is dan het eigen object.
     *			0, wanneer beide objecten een gelijke grootte hebben.
     *			1, wanneer het eigen object groter is dan het meegegeven object.
     **/
	int compareTo(NatuurlijkGetal ng);
}
